package com.yidu.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.yidu.model.SnAudit;
import com.yidu.model.SuWholesale;
/**
 * 批发订单mapper
 * @Type SuWholesaleMapper
 * @author ZhuYiFan
 * @Date 2018年11月28日
 * @Time 下午1:57:29
 */
public interface SuWholesaleMapper {
    int deleteByPrimaryKey(String whId);

    int insert(SuWholesale record);

    int insertSelective(SuWholesale record);

    SuWholesale selectByPrimaryKey(String whId);

    int updateByPrimaryKeySelective(SuWholesale record);

    int updateByPrimaryKey(SuWholesale record);
    
    /**
        * 查询所有批发订单
     * @param maps map对象
     * @return list 批发订单集合
     */
	List<SuWholesale> findAll(Map<String, Object> maps);
	
	/**
	 * 查询所有行数
	 * @param maps map对象
	 * @return 批发订单行数
	 */
	int findCount(Map<String, Object> maps);
	
	/**
	 * 根据商品ID查询库存
	 * @param comId 商品ID
	 * @param braId 分公司ID
	 * @return 库存数量
	 */
	@Select("select ci_number from sn_com_inventory where com_id = #{comId} and bra_id = #{braId} and isva='1'")
	Integer queryInventory(@Param("comId")String comId, @Param("braId")String braId);
	
	/**
	 * 修改订单状态
	 * @param snAudit 审核对象
	 * @return 0 修改失败 1 修改成功
	 */
	int updateState(SnAudit snAudit);
	
	/**
	 * 判断是否批发成功的方法
	 * @param whId 批发订单ID
	 * @return row 行数
	 */
	int updateSort(String whId);

	/**
	 * 根据销售订单ID查询商品ID
	 * @param whId 销售订单ID
	 * @return list 商品ID集合
	 */
	List<SuWholesale> findInventory(String whId);
	/**
	 * 查询饼图
	 * @param mapx 年份
	 * @return 统计图json格式
	 */
	List<Map<String, Object>> findBingAll(Map<String, Object> mapx);
	/**
	 * 柱状图
	 * @param 时间月份 
	 * @return map集合
	 */
	Integer findZhuAll(Map<String, Object> aMap);
	/**
	 * 查询销售业绩前三的商品
	 * @param braId 
	 * @return map集合
	 */
	List<Map<String, Object>> findThree(String braId);
	/**
	 * 查询总销量前五的商品
	 * @param string 
	 * @return map集合
	 */
	List<Map<String, Object>> findLeiAll(String braId);
	/**
	 * 根据商品id查询行数
	 * @param comId 商品id
	 * @return 行数
	 */
	@Select("select sum(wd.wd_number) from sn_wh_detail wd , sn_wholesale sw where sw.wh_id=wd.wh_id and wd.isva='1' and sw.bra_id=#{braId} and wd.com_id=#{comId}")
	Integer findComId(Map<String, Object> map);
	/**
	 * 柱状图
	 * @param 时间月份 
	 * @return map集合
	 */
	Integer findZhuAll2(Map<String, Object> aMap);
	
	/**
	 * 根据批发订单ID修改批发订单状态
	 * @param whId 批发订单ID
	 * @return 1 成功 0 失败
	 */
	int updateStateByWhId(String whId);
	
	/**
	 * 根据分公司ID查询财务总金额
	 * @param braId 分公司ID
	 * @return 财务总金额
	 */
	Double findAllMoney(String braId);

	/**
	 * 根据批发订单ID修改订单状态
	 * @param whId 批发订单ID
	 * @return 0 修改成功 1 修改失败
	 */
	int updateSort2(String whId);
	
}